"""
linklist.py
功能：实现单链表的构建和功能操作
重点代码
"""


# 创建节点类
class Node:
    """
    思路：将自定义的类视为节点的生成类，实例对象中
         包含数据部分和指向下一个节点的next
    """
    def __init__(self, val, next=None):
        self.val = val  # 有用数据
        self.next = next # 循环下一个节点关系


# node1 = Node(1)
# node2 = Node(2, node1)  # node2.next == node1
# node3 = Node(3, node2)  # node3.next == node2


# 创建单链表
class LinkList:
    """
    思路：单链表类，生成对象可以进行增删改查操作
         具体操作通过电泳具体方法完成
    """
    def __init__(self):
        self.head = Node(None)

    # 通过list_为链表添加一组节点
    def init_list(self, list_):
        p = self.head
        for item in list_:
            p.next = Node(item)
            p = p.next

    # 遍历链表
    def show(self):
        p = self.head.next  # 第一个有效节点
        while p is not None:
            print(p.val)
            p = p.next

l=LinkList()
l.init_list([2,5,3,8,6])
l.show()
